<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    .father {
        position: relative;
        width: 200px;
        height: 200px;
        background-color: pink;
    }
    .son {
        position: absolute;
        text-align: center;
        left: 50px;
        top: 50px;
        width: 100px;
        height: 100px;
        background-color: purple;
    }    
    </style>
</head>
<body>
    <div class="father">
        <div class="son">son</div>
    </div>
    <script>
        //捕获阶段
        //当前目标阶段
        //冒泡阶段
        
        //Js只能执行捕获或者冒泡其中的一个阶段
        //onclick和attachEvent（ie）只能得到冒泡阶段
        var son = document.querySelector('.son');
        //捕获阶段  如果addEventListener第三个参数是true  那么则处于捕获阶段
        //document->html->body->father->son
        //如果参数为true,则为捕获阶段，先弹出fa
        //如果参数为false。则为冒泡阶段，先弹出son
        son.addEventListener('click',function(e){
            alert('son');
            e.stopPropagation();
            e.cancelBubble=true; //ie678阻止冒泡写法
        },false)

        var fa = document.querySelector('.father');
        //捕获阶段  如果addEventListener第三个参数是true  那么则处于捕获阶段
        //document->html->body->father->son
        fa.addEventListener('click',function(){
            alert('fa');
        },false)

        //实际开发我们很少使用事件捕获，我们更关注事件冒泡
        //有些事件是没有冒泡的。比如onmousefocus等等
     
     
        //阻止冒泡 我们只想弹出son
        //在事件中添加 stopPropagation();
    </script>
    
</body>
</html>